From: Keir Fraser Date: Wed, 10 Dec 2008 13:14:13 +0000 (+0000) Subject: libxc: Fix memory leak in zlib usage X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14026^2~49 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=ac677794d61dc7a6f92b16946863043da890c828;p=xen.git libxc: Fix memory leak in zlib usage Any call to inflate() must be followed by inflateEnd(), otherwise the internal zlib state is leaked. Signed-off-by: Kevin Wolf --- diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c index 2b6f6b6868..b1e90d8d6e 100644 --- a/tools/libxc/xc_dom_core.c +++ b/tools/libxc/xc_dom_core.c @@ -244,6 +244,7 @@ int xc_dom_do_gunzip(void *src, size_t srclen, void *dst, size_t dstlen) return -1; } rc = inflate(&zStream, Z_FINISH); + inflateEnd(&zStream); if ( rc != Z_STREAM_END ) { xc_dom_panic(XC_INTERNAL_ERROR, diff --git a/tools/libxc/xg_private.c b/tools/libxc/xg_private.c index d7620933cd..544d089cdf 100644 --- a/tools/libxc/xg_private.c +++ b/tools/libxc/xg_private.c @@ -131,6 +131,7 @@ char *xc_inflate_buffer(const char *in_buf, unsigned long in_size, /* Inflate in one pass/call */ sts = inflate(&zStream, Z_FINISH); + inflateEnd(&zStream); if ( sts != Z_STREAM_END ) { ERROR("inflate failed, sts %d\n", sts);